Definition

A pair of PPT algorithms (P,V)(P,V) is a non-interactive zero-knowledge proof system (NIZK proof system) for a language L∈L \in NP if:

  • Completeness: for any x∈Lx \in L, (with |x|=k|x| = k), witness ww for xx, have
    • Pr⁡[r←{0,1}𝗉𝗈𝗅𝗒(k);π←P(r,x,w):V(r,x,π)=1]=1\Pr[r \gets \{0,1\}^{\mathsf{poly}(k)}; \pi \gets P(r,x,w) : V(r,x,\pi)=1] = 1
    • (random string rr given to both parties. PP given r,xr,x and witness that x∈Lx\in L, produces proof π\pi sent to VV. Verifier given r,x,πr,x,\pi decides to accept or reject. If x∈Lx \in L and honest parties, VV always accepts)
  • Soundness: if x∉Lx \notin L, then ∀P∗\forall P^* (even all-powerful P∗P^*), the following is negligible (in |x|=k|x| = k)
    • Pr⁡[r←{0,1}𝗉𝗈𝗅𝗒(k);π←P∗(r,x):V(r,x,π)=1]\Pr[r \gets \{0,1\}^{\mathsf{poly}(k)}; \pi \gets P^*(r,x) : V(r,x,\pi)=1]
  • Zero-knowledge: exists a PPT simulator SS such that for all x∈Lx \in L (with |x|=k|x| = k, security parameter) and any witness ww for xx, the following distributions are computationally indistinguishable
    1. {r←{0,1}𝗉𝗈𝗅𝗒(k);π←P(r,x,w):(r,x,π)}\{r \gets \{0,1\}^{\mathsf{poly}(k)}; \pi \gets P(r,x,w) : (r,x,\pi)\}
    2. {(r,π)←S(x):(r,x,π)}\{(r,\pi) \gets S(x): (r,x,\pi)\}
    • (restricts info VV may obtain from PP. Intuition: if VV "learns" anything from interacting with PP, could have also learned himself using polynomial-time simulator SS)

See also


References

  1. https://www.cs.umd.edu/~jkatz/gradcrypto2/NOTES/lecture5.pdf
  2. https://www.cs.umd.edu/~jkatz/gradcrypto2/NOTES/lecture6.pdf